﻿/*
 * Carga los datos desde el XML "smist_datos_inc" a Base de Datos SQLite
 */

function cargarDatosInc() {
	// Cargar tabla smist_datos_inc
	$.get("../data/smist/smist_datos_inc.xml", function (xml) {
		$(xml).find("row").each(function () {
			id_incidencia 			= $(this).find('id_incidencia').text();
			coord_x 				= $(this).find('coord_x').text();
			coord_y 				= $(this).find('coord_y').text();
			id_tipo_inc 			= $(this).find('id_tipo_inc').text();
			fecha_ocurrencia 		= $(this).find('fecha_ocurrencia').text();
			id_status_inc 			= $(this).find('id_status_inc').text();
			id_estado 				= $(this).find('id_estado').text();
			id_municipio 			= $(this).find('id_municipio').text();
			id_parroquia 			= $(this).find('id_parroquia').text();
			id_sector 				= $(this).find('id_sector').text();
			id_tipo_via 			= $(this).find('id_tipo_via').text();
			referencia 				= $(this).find('referencia').text();
			login_registro 			= $(this).find('login_registro').text();
			fecha_registro 			= $(this).find('fecha_registro').text();
			observaciones 			= $(this).find('observaciones').text();
			ruta_img1 				= $(this).find('ruta_img1').text();
			ruta_img2 				= $(this).find('ruta_img2').text();
			ruta_img3 				= $(this).find('ruta_img3').text();
			coord_x_centro 			= $(this).find('coord_x_centro').text();
			coord_y_centro 			= $(this).find('coord_y_centro').text();
			zoom_centro 			= $(this).find('zoom_centro').text();
			
			insertarDatosIncXML(id_incidencia, coord_x, coord_y, id_tipo_inc, fecha_ocurrencia, id_status_inc, id_estado, id_municipio, id_parroquia, id_sector, id_tipo_via, referencia, login_registro, fecha_registro, observaciones, ruta_img1, ruta_img2, ruta_img3, coord_x_centro, coord_y_centro, zoom_centro);
		});
	});
}


/*
 * Insertar los Datos de una Incidencia desde un XML
 */

function insertarDatosIncXML(id_incidencia, coord_x, coord_y, id_tipo_inc, fecha_ocurrencia, id_status_inc, id_estado, id_municipio, id_parroquia, id_sector, id_tipo_via, referencia, login_registro, fecha_registro, observaciones, ruta_img1, ruta_img2, ruta_img3, coord_x_centro, coord_y_centro, zoom_centro) {
	db.transaction(function(tx) {
		tx.executeSql('INSERT INTO smist_datos_inc (id_incidencia, coord_x, coord_y, id_tipo_inc, fecha_ocurrencia, id_status_inc, id_estado, id_municipio, id_parroquia, id_sector, id_tipo_via, referencia, login_registro, fecha_registro, observaciones, ruta_img1, ruta_img2, ruta_img3, coord_x_centro, coord_y_centro, zoom_centro) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', [id_incidencia, coord_x, coord_y, id_tipo_inc, fecha_ocurrencia, id_status_inc, id_estado, id_municipio, id_parroquia, id_sector, id_tipo_via, referencia, login_registro, fecha_registro, observaciones, ruta_img1, ruta_img2, ruta_img3, coord_x_centro, coord_y_centro, zoom_centro]);
	});
}


/*
 * Insertar los Datos de una Incidencia Localmente
 */

function insertarDatosInc( coord_x, coord_y, id_tipo_inc, fecha_ocurrencia, id_status_inc, id_estado, id_municipio, id_parroquia, id_sector, id_tipo_via, referencia, login_registro, observaciones, coord_x_centro, coord_y_centro, zoom_centro ) {
	
	// Obtenemos la Fecha de Registro
	now = new Date();
	fecha_registro = dateFormat(now, "yyyy-mm-dd H:MM:ss");
	
	fecha_ocu = formatDateSQLite(fecha_ocurrencia);
	
	db.transaction(function(tx) {
		tx.executeSql('INSERT INTO smist_datos_inc (coord_x, coord_y, id_tipo_inc, fecha_ocurrencia, id_status_inc, id_estado, id_municipio, id_parroquia, id_sector, id_tipo_via, referencia, login_registro, fecha_registro, observaciones, coord_x_centro, coord_y_centro, zoom_centro) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', [coord_x, coord_y, id_tipo_inc, fecha_ocu, id_status_inc, id_estado, id_municipio, id_parroquia, id_sector, id_tipo_via, referencia, login_registro, fecha_registro, observaciones, coord_x_centro, coord_y_centro, zoom_centro], resInsertarDatosInc);
	});
}


/*
 * Retornar el ID de la Incidencia insertada Localmente
 */

function resInsertarDatosInc(tx, rs) {
	id_incidencia = rs.insertId;
	
	navigator.notification.confirm("Incidencia registrada Existosamente en el Dispositivo Movil.\n\nRecuerde Sincronizar los Datos con el Servidor.", irSubMenuInc, acronimo_sistema, "Aceptar,");
}


/*
 * Consultar el Número de Filas de la Tabla para la Sincronización
 */

function consultarNroFilasDatosInc() {
    db.transaction(function(tx) {
        tx.executeSql('SELECT * FROM smist_datos_inc', [], resConsultarNroFilasDatosInc);
    });
}


/*
 * Respuesta a Consultar el Número de Filas de la Tabla para la Sincronización
 */

function resConsultarNroFilasDatosInc(tx, rs) {
    $('#h_nro_filas_datos_inc').val( rs.rows.length );
}


/*
 * Sincronizar los Datos
 */

function sincronizarDatosInc() {
    db.transaction(function(tx) {
        tx.executeSql('SELECT * FROM smist_datos_inc', [], resSincronizarDatosInc);
    });
}


/*
 * Respuesta a Sincronizar los Datos
 */

function resSincronizarDatosInc(tx, rs) {
    // Si hay una Respuesta exitosa
    if ( rs.rows.length > 0 ) {
        for(var i=0; i < rs.rows.length; i++) {
			r = rs.rows.item(i);
        	
			id_incidencia_Sync 		= r['id_incidencia'];
			
			eliminarDatosInc( id_incidencia_Sync );
			
			// Llamamos al Servicio
			var ajaxManager = $.manageAjax.create('cola_ajax',{manageType: 'queue', maxReq: 0, blockSameRequest:true});
			
			ajaxManager.add({
				type: "POST",
				url:  url_servicio_incidencia,
				data: "servicio=sincronizar_incidencia"+"&"+
					  "id_municipio_base="+id_municipio_base+"&"+
					  "id_opcion="+17+"&"+
					  "coord_x="+r['coord_x']+"&"+
					  "coord_y="+r['coord_y']+"&"+
					  "id_tipo_inc="+r['id_tipo_inc']+"&"+
					  "fecha_ocurrencia="+r['fecha_ocurrencia']+"&"+
					  "id_status_inc="+r['id_status_inc']+"&"+
					  "id_estado="+r['id_estado']+"&"+
					  "id_municipio="+r['id_municipio']+"&"+
					  "id_parroquia="+r['id_parroquia']+"&"+
					  "id_sector="+r['id_sector']+"&"+
					  "id_tipo_via="+r['id_tipo_via']+"&"+
					  "referencia="+r['referencia']+"&"+
					  "login_registro="+login_usuario+"&"+
					  "fecha_registro="+r['fecha_registro']+"&"+
					  "observaciones="+r['observaciones']+"&"+
					  "coord_x_centro="+r['coord_x_centro']+"&"+
					  "coord_y_centro="+r['coord_y_centro']+"&"+
					  "zoom_centro="+r['zoom_centro']+"&"+
					  "device_uuid="+device.uuid+"&"+
					  "device_platform="+device.platform,
				dataType: 'xml',
				success: function(response_xml)
				{
					$xml_resultado = $(response_xml);
					$status = $xml_resultado.find("status");
					
					if($status.length)
					{
						$status.each(function()
						{
							if($(this).text()=="S")
							{
								
							}
							else if($(this).text()=="N")
							{
								
							}
						});
					}
					else
					{
						navigator.notification.alert("No hay Respuesta del Servicio.", null, acronimo_sistema, "Aceptar");
					}
				}
			});
		}
    } 
}


/*
 * Buscar los Datos de una Incidencia (ACTUALIZAR y ADJUNTAR)
 */

function buscarDatosInc( id_incidencia ) {
    db.transaction(function(tx) {
        tx.executeSql('SELECT * FROM smist_datos_inc WHERE id_incidencia = ?', [id_incidencia], resBuscarDatosInc);
    });
}


/*
 * Respuesta a Buscar los Datos de una Incidencia (ACTUALIZAR y ADJUNTAR)
 */

function resBuscarDatosInc(tx, rs) {
    // Si hay una Respuesta exitosa
    if ( rs.rows.length > 0 ) {
        r = rs.rows.item(0);
        
        $('#id_incidencia').val(r['id_incidencia']);
        
        id_opcion = $('#id_opcion').val();
        if ( id_opcion == "18" ) {
            $('#coord_x_actual').val(r['coord_x']);
            $('#coord_y_actual').val(r['coord_y']);
        }

        consultarNombreTipoInc( r['id_tipo_inc'] );
        $('#fecha_ocurrencia').val(r['fecha_ocurrencia']);
        if ( r['id_status_inc'] == "A" ) {
            $('#nombre_status_inc').val("ACTIVO");
        } else {
            $('#nombre_status_inc').val("INACTIVO");
        }
        
        $('#nombre_estado').val(nombre_estado_base);
        $('#nombre_municipio').val(nombre_municipio_base);
        
        consultarNombreTipoVia( r['id_tipo_via'] );
        
        $('#referencia').val(r['referencia']);
        $('#observaciones').val(r['observaciones']);
		
		navigator.notification.alert("Información Cargada.", null, acronimo_sistema, "Aceptar");
    	
    // Si no hay una Respuesta exitosa
    } else {
        limpiarBuscarDatosInc();
		navigator.notification.alert("No se encontró una Incidencia con el ID indicado.", null, acronimo_sistema, "Aceptar");
    }
}


/*
 * Consultar los Datos de una Incidencia para la Modificación por ID INCIDENCIA
 */

function consultarModificarDatosInc( id_incidencia ) {
    db.transaction(function(tx) {
        tx.executeSql('SELECT * FROM smist_datos_inc WHERE id_incidencia = ?', [id_incidencia], resConsultarModificarDatosInc);
    });
}


/*
 * Respuesta a Consultar los Datos de una Incidencia para la Modificación por ID INCIDENCIA
 */

function resConsultarModificarDatosInc(tx, rs) {
    // Si hay una Respuesta exitosa
    if ( rs.rows.length > 0 ) {
        r = rs.rows.item(0);
        
        $('#id_incidencia').val(r['id_incidencia']);
        
        consultarNombreTipoInc( r['id_tipo_inc'] );
        $('#fecha_ocurrencia').val(r['fecha_ocurrencia']);
        $('#id_status_inc').val(r['id_status_inc']);
        
        $('#nombre_estado').val(nombre_estado_base);
        $('#nombre_municipio').val(nombre_municipio_base);
        
        $('#id_tipo_via').val(r['id_tipo_via']);
        
        $('#referencia').val(r['referencia']);
        $('#observaciones').val(r['observaciones']);
		
		navigator.notification.alert("Información Cargada.", null, acronimo_sistema, "Aceptar");
    	
    // Si no hay una Respuesta exitosa
    } else {
        limpiarModificarDatosInc();
		navigator.notification.alert("No se encontró una Incidencia con el ID indicado.", null, acronimo_sistema, "Aceptar");
    }
}


/*
 * Consultar los Datos de una Incidencia por ID INCIDENCIA
 */

function consultarDatosInc( id_incidencia ) {
	db.transaction(function(tx) {
		tx.executeSql('SELECT * FROM smist_datos_inc WHERE id_incidencia = ?', [id_incidencia], resConsultarDatosInc);
	});
}


/*
 * Respuesta a Consultar los Datos de una Incidencia por ID INCIDENCIA
 */

function resConsultarDatosInc( tx, rs ) {
 // Si hay una Respuesta exitosa
    if ( rs.rows.length > 0 ) {
        r = rs.rows.item(0);
        
        $('#id_incidencia').val(r['id_incidencia']);
        $('#coord_x').val(r['coord_x']);
        $('#coord_y').val(r['coord_y']);
        
        consultarNombreTipoInc( r['id_tipo_inc'] );
        $('#fecha_ocurrencia').val(r['fecha_ocurrencia']);
        if ( r['id_status_inc'] == "A" ) {
            $('#nombre_status_inc').val("ACTIVO");
        } else {
            $('#nombre_status_inc').val("INACTIVO");
        }
        
        $('#nombre_estado').val(nombre_estado_base);
        $('#nombre_municipio').val(nombre_municipio_base);
        
        consultarNombreTipoVia( r['id_tipo_via'] );
        
        $('#referencia').val(r['referencia']);
		
		$('#nombre_usuario_reg').val(r['login_registro']);
		$('#fecha_registro').val(r['fecha_registro']);
        $('#observaciones').val(r['observaciones']);
		
		navigator.notification.alert("Información Cargada.", null, acronimo_sistema, "Aceptar");
    	
    // Si no hay una Respuesta exitosa
    } else {
        limpiarConsultarDatosInc();
		navigator.notification.alert("No se encontró una Incidencia con el ID indicado.", null, acronimo_sistema, "Aceptar");
    }
}


/*
 * Eliminar los Datos de una Incidencia por ID INCIDENCIA
 */

function eliminarDatosInc( id_incidencia ) {
    db.transaction(function(tx) {
        tx.executeSql('DELETE FROM smist_datos_inc WHERE id_incidencia = ?', [id_incidencia], resEliminarDatosInc);
    });
}


/*
 * Respuesta a Eliminar los Datos de una Incidencia por ID INCIDENCIA
 */

function resEliminarDatosInc(tx, rs) {
    // alert("resEliminarDatosInc Filas Affectadas: " + rs.rowsAffected);
}


/*
 * LIMPIAR LOS CAMPOS DE LOS FORMULARIOS DE INCIDENCIA
 */

/*
 * Limpiar Datos del Formulario (Modificar una Incidencia)
 */

function limpiarModificarDatosInc() {
    $('#id_incidencia').val("");
    $('#h_id_incidencia').val("");
	
	$('#nombre_tipo_inc').val("");
    $('#fecha_ocurrencia').val("");
    $('#id_status_inc').val("");
	$('#id_status_inc').selectmenu("refresh",true);
    
    $('#nombre_estado').val("");
    $('#nombre_municipio').val("");
    $('#id_parroquia').val("");
	$('#id_parroquia').selectmenu("refresh",true);
    $('#id_sector').val("");
	$('#id_sector').selectmenu("refresh",true);
    $('#id_tipo_via').val("");
	$('#id_tipo_via').selectmenu("refresh",true);
    $('#referencia').val("");
    
    $('#observaciones').val("");
}


/*
 * Limpiar Datos del Formulario (Consultar una Incidencia)
 */

function limpiarConsultarDatosInc() {
    $('#id_incidencia').val("");
    $('#coord_x').val("");
    $('#coord_y').val("");
	
    $('#nombre_tipo_inc').val("");
    $('#fecha_ocurrencia').val("");
    $('#nombre_status_inc').val("");
    
    $('#nombre_estado').val("");
    $('#nombre_municipio').val("");
    $('#nombre_parroquia').val("");
    $('#nombre_sector').val("");
    $('#nombre_tipo_via').val("");
    $('#referencia').val("");
	
	$('#nombre_usuario_reg').val("");
	$('#fecha_registro').val("");
    $('#observaciones').val("");
}


/*
 * Limpiar Datos del Formulario (Actualizar / Adjuntar una Incidencia)
 */

function limpiarBuscarDatosInc() {
    $('#id_incidencia').val("");
    $('#h_id_incidencia').val("");
	
    id_opcion = $('#id_opcion').val();
    if ( id_opcion == "18" ) {
        $('#coord_x_actual').val("");
        $('#coord_y_actual').val("");
        $('#coord_x').val("");
        $('#coord_y').val("");
    }
    
    $('#nombre_tipo_inc').val("");
    $('#fecha_ocurrencia').val("");
    $('#nombre_status_inc').val("");
    
    $('#nombre_estado').val("");
    $('#nombre_municipio').val("");
    $('#nombre_parroquia').val("");
    $('#nombre_sector').val("");
    $('#nombre_tipo_via').val("");
    $('#referencia').val("");
    
    $('#observaciones').val("");
}


/*
 * PRUEBAS DE CARGA DE DATA DE XML A BD
 */

/*
 * Prueba de carga de todos los Datos del XML a BD
 */

function pruebaDatosInc() {
    db.transaction(function(tx) {
        tx.executeSql('SELECT * FROM smist_datos_inc', [], resPruebaDatosInc);
    });
}


/*
 * Respuesta a la Prueba de carga de todos los Datos del XML a BD
 */

function resPruebaDatosInc(tx, rs) {
    alert("Cantidad resPruebaDatosInc: " + rs.rows.length + " -> 1");
	for(var i=0; i < rs.rows.length; i++) {
		r = rs.rows.item(i);
		//alert(r['id_incidencia'] + " - " + r['coord_x'] + " - " + r['coord_y'] + " - " + r['id_tipo_inc'] + " - " + r['fecha_ocurrencia'] + " - " + r['id_status_inc'] + " - " + r['id_estado'] + " - " + r['id_municipio'] + " - " + r['id_parroquia'] + " - " + r['id_sector'] + " - " + r['referencia'] + " - " + r['login_registro'] + " - " + r['fecha_registro'] + " - " + r['observaciones'] + " - " + r['coord_x_centro'] + " - " + r['coord_y_centro'] + " - " + r['zoom_centro']);
	}
}